<?php
class CP_NewsCategoriesController extends XPHP_Controller
{
	/**
	 * Phương thức sẽ thực thi trước khi thực thi sau khi controller được khởi tạo
	 */
	public function _init()
	{
		//Load layout
		$this->loadLayout("Administrator");
		//Xác thực
		$this->helper->auth();
	}
	
	public function indexAction()
	{
		$model = new Areas_CP_Models_NewsCategories();
		$arrCategories = $model->select_all();
		$this->view->arrCategories = $arrCategories;
		
		return $this->view();
	}
	
	/**
	 * [[
	 * model: Areas_CP_Models_NewsCategories
	 * ]]
	 */
	public function createAction()
	{
		//Danh mục gốc
		$root = array(array("id" => "0", "name" => "Không có"));
		//Lấy ra toàn bộ danh mục
		$this->view->categoryList = array_merge((array)$root, (array)$this->model->select_all());

		return $this->view();
	}
	
	/**
	 * [[
	 * model: Areas_CP_Models_NewsCategories
	 * ]]
	 */
	public function createPOST()
	{
		if ($this->hasModel())
		{
			if ($this->model->isValid())
			{
				//Kiểm tra danh mục đã có chưa
				$model = new Areas_CP_Models_NewsCategories();
				$data = $model->select("name='".$this->model->name."'");
				if (!empty($data))
				{
					//Thông báo danh mục đã tồn tại
					$this->model->setErrorMessage("unique", "Tên danh mục đã tồn tại", "name");
				}
				else 
				{
					$this->model->insert();
					//Redirect tới action index
					return $this->redirect("index");
				}
			}
		}
	}

	public function editAction($args)
	{
		$model = new Areas_CP_Models_NewsCategories($args[0]);
		
		//Danh mục gốc
		$root = array(array("id" => "0", "name" => "Không có"));
		//Lấy ra toàn bộ danh mục
		$this->view->categoryList = array_merge((array)$root, (array)$model->select_all());
			
		return $this->view($model);
	}
	
	/**
	 * [[
	 * model: Areas_CP_Models_NewsCategories
	 * ]]
	 */
	public function editPOST()
	{
		if ($this->hasModel())
		{
			if ($this->model->isValid())
			{
				//Kiểm tra danh mục đã có chưa
				$model = new Areas_CP_Models_NewsCategories();
				$data = $model->select("name='".$this->model->name."'");
				if (!empty($data))
				{
					//Thông báo danh mục đã tồn tại
					$this->model->setErrorMessage("unique", "Tên danh mục đã tồn tại", "name");
				}
				else 
				{
					$this->model->update();
					//Redirect tới action index
					return $this->redirect("index");
				}
			}
		}
	}
	
	public function deleteAJAX()
	{
		$id = $this->params['id'];
		$model = new Areas_CP_Models_NewsCategories($id);
		$model->delete();
		return $this->json(array("success" => true));
	}
}